home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 1.5)
-
- verbose
- print 'pwd.getpwall()'
- entries = pwd.getpwall()
- for e in entries:
- name = e[0]
- uid = e[2]
- if verbose:
- print name, uid
-
- print 'pwd.getpwuid()'
- dbuid = pwd.getpwuid(uid)
- if dbuid[0] != name:
- print 'Mismatch in pwd.getpwuid()'
-
- print 'pwd.getpwnam()'
- dbname = pwd.getpwnam(name)
- if dbname[2] != uid:
- print 'Mismatch in pwd.getpwnam()'
- else:
- print 'name matches uid'
-
- bynames = { }
- byuids = { }
- for n, p, u, g, gecos, d, s in entries:
- bynames[n] = u
- byuids[u] = n
-
- allnames = bynames.keys()
- namei = 0
- fakename = allnames[namei]
- while bynames.has_key(fakename):
- chars = map(None, fakename)
- for i in range(len(chars)):
- if chars[i] == 'z':
- chars[i] = 'A'
- break
- elif chars[i] == 'Z':
- continue
- else:
- chars[i] = chr(ord(chars[i]) + 1)
- break
- else:
- namei = namei + 1
-
- try:
- fakename = allnames[namei]
- except IndexError:
- 0
- 0
- entries
- break
- except:
- 0
-
- fakename = string.join(map(None, chars), '')
- continue
- 0
-
- try:
- pwd.getpwnam(fakename)
- except KeyError:
- entries
- entries
- print 'caught expected exception'
- except:
- entries
-
- print 'fakename', fakename, 'did not except pwd.getpwnam()'
- fakeuid = 4127
- while byuids.has_key(fakeuid):
- fakeuid = fakeuid * 3 % 65536
-
- try:
- pwd.getpwuid(fakeuid)
- except KeyError:
- print 'caught expected exception'
-
- print 'fakeuid', fakeuid, 'did not except pwd.getpwuid()'
-